package linter.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import linter.POJO.DO.Collect;
import linter.POJO.DTO.CollectDTO;

/**
* @author 北煜
* @description 针对表【collect(收藏组详情表)】的数据库操作Service
* @createDate 2024-03-15 11:14:15
*/
public interface CollectService extends IService<Collect> {

    /**
     * @param collectName 新建文件夹名称
     * @param uuid 用户ID
     * @return 返回新建文件夹是否成功
     */
    String create(String collectName, Long uuid);

    /**
     * @param collectName 新建文件夹名称
     * @param uuid 用户ID
     * @param collectFatherId 新建文件夹的父文件
     * @return 返回新建文件夹是否成功
     */
    String createByFather(String collectName, Long uuid, int collectFatherId);

    /**
     * @param collectId 需要删除的文件夹ID
     * @return 是否删除成功
     */
    String del(Integer collectId);

    /**
     * @param uuid 用户ID
     * @param postsId 被收藏的文章ID
     * @param collectId 收藏夹ID
     * @return 返回是否收藏成功
     */
    String collectPosts(Long uuid, Integer postsId, Long collectId);

    /**
     * @param pageNum 当前的页
     * @param pageSize 多少个
     * @param uuid 用户ID
     * @return 返回查询到的数据
     */
    PageInfo<CollectDTO> selAllByUuid(Integer pageNum, Integer pageSize, Long uuid);

    /**
     * @param uuid 用户ID
     * @param collectId 收藏夹ID
     * @param postsId 文章ID
     * @return 返回删除成功与否
     */
    String delCollectPosts(Long uuid, Integer collectId, Integer postsId);

    /**
     * @param collectId 收藏夹ID
     * @param collectName 收藏夹名字
     * @param uuid 用户ID
     * @return 返回修改成功与否
     */
    String updateCollect(Integer collectId, String collectName, Long uuid);

    /**
     * @param collectId 收藏夹ID
     * @param collectFatherId 父收藏夹ID
     * @param uuid 用户ID
     * @return 成功与否
     */
    String moveCollect(Integer collectId, Integer collectFatherId, Long uuid);

    /**
     * @param uuid 用户ID
     * @param collectId 收藏夹ID
     * @return 返回文章
     */
    PageInfo<?> selCollectPosts(Long uuid, Integer collectId);


    /**
     * @param uuid 用户ID
     * @param collectId 收藏夹ID
     * @return 返回文章
     */
    PageInfo<?> selCollectNote(Long uuid, Integer collectId);
}
